package Box2D.Dynamics
{
	import Box2D.Common.Math.b2Vec2;
	import Box2D.Common.b2Wrapper;
	
	public class b2BodyDef extends b2Wrapper
	{		
		private var _position:b2Vec2;	
		private var _linearVelocity:b2Vec2
		public function b2BodyDef()
		{
			super();
			_wrapper = callDirect('b2BodyDef_new');
			_position = new b2Vec2(0,0,_wrapper+4);			
			_linearVelocity = new b2Vec2(0,0,_wrapper+16);
		}
		public function get type():int{return getInt(0);}
		public function set type(value:int):void{setInt(0,value)}
		
		public function get position():b2Vec2{return _position}
		public function set position(value:b2Vec2):void{_position.Copy(value)}
		
		public function get angle():Number{return getNumber(12)}
		public function set angle(value:Number):void{setNumber(12,value)}
		
		public function get linearVelocity():b2Vec2{return _linearVelocity}
		public function set linearVelocity(value:b2Vec2):void{_linearVelocity.Copy(value)}

		public function get angularVelocity():Number{return getNumber(24)}
		public function set angularVelocity(value:Number):void{setNumber(24,value)}

		public function get linearDamping():Number{return getNumber(28)}
		public function set linearDamping(value:Number):void{setNumber(28,value)}

		public function get angularDamping():Number{return getNumber(32)}
		public function set angularDamping(value:Number):void{setNumber(32,value)}

		public function get allowSleep():Boolean{return getBoolean(36)}
		public function set allowSleep(value:Boolean):void{setBoolean(36,value)}

		public function get awake():Boolean{return getBoolean(37)}
		public function set awake(value:Boolean):void{setBoolean(37,value)}

		public function get fixedRotation():Boolean{return getBoolean(38)}
		public function set fixedRotation(value:Boolean):void{setBoolean(38,value)}

		public function get bullet():Boolean{return getBoolean(39)}
		public function set bullet(value:Boolean):void{setBoolean(39,value)}

		public function get active():Boolean{return getBoolean(40)}
		public function set active(value:Boolean):void{setBoolean(40,value)}

		public function get userData():*{return getPoint(41)}
		public function set userData(value:*):void{setPoint(41,value)}

		public function get inertiaScale():Number{return getNumber(45)}
		public function set inertiaScale(value:Number):void{setNumber(45,value)}

	}
}